DSL video service with memory manager

ABSTRACT

A digital video recorder (DVR) has a memory manager to determine a particular date and a particular video program in a download schedule for which the DVR will reach a low memory condition based on the download schedule and an amount of unoccupied memory space in the DVR. The DVR outputs a display signal to indicate the particular date and the particular video program.

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] The present application is related to, and incorporates byreference, the following applications having the same assignee as thepresent application:

[0002] “DSL VIDEO SERVICE WITH AUTOMATIC PROGRAM SELECTOR”, filed on thesame day as the present application, having application No.______/______,______ (dkt. # 8285/564);

[0003] “DSL VIDEO SERVICE WITH STORAGE”, filed on the same day as thepresent application, having application No. ______/______,______ (dkt. #8285/565);

[0004] “SYSTEM AND METHOD FOR SEARCH, SELECTION AND DELIVERY OF MEDIACONTENT”, filed on the same day as the present application, havingapplication No. ______/______,______ (dkt. # 8285/562); and

[0005] “SYSTEM AND METHOD FOR DELIVERING MEDIA CONTENT”, filed on thesame day as the present application, having application No.______/______,______ (dkt. # 8285/563).

BACKGROUND OF THE INVENTION

[0006] 1. Field of the Invention

[0007] The present invention relates to video distribution systems.

[0008] 2. Description of the Related Art

[0009] Currently, video programming is broadcast to subscribers viacable and satellite systems. Subscribers may purchase a service thatuses a digital video recorder at a subscriber location in conjunctionwith an electronic program guide to record broadcast programs. Examplesof the DVRs include those sold under the brand names of TIVO® andREPLAYTV®. Users can play back recorded programs at a time that isconvenient.

[0010] Digital Subscriber Line (DSL) services may allow video-on-demandservices, but in many cases the bandwidth of the channel is notsufficient to transmit high quality video signals in real time.

[0011] U.S. Patent Application Publication No. 2001/0042249 discloses asystem and method for transferring entertainment media files over theInternet. Show requests can occur in two ways. In one method, a user candirectly request a show, such as browsing through a directory andselecting a show to request from the server. In a second method, a usercan subscribe to a particular show, series of episodes, or genre ofentertainment, for example. As episodes included in a subscriptionbecome available at the server-side, they are automatically delivered tothe client using the client's idle bandwidth.

[0012] U.S. Patent Application Publication No. 2001/0027563 discloses aclient terminal that monitors a user's viewing habits to determinefavorite shows. Thereafter, if the terminal is not activated by the userto watch one of these favorites, the terminal notices the event andautomatically copies the program onto disk to the extent storage spacepermits. Recorded programs are not deleted after viewing, however theirstorage space may be overwritten by other recordings. Recorded programsthat have not been viewed are overwritten as needed, oldest first.Viewed programs are overwritten before non-viewed programs. A variety ofmore complex rules and policies is typically provided to govern whichrecorded programs are deleted to provide storage for new programs.

[0013] U.S. Pat. No. 6,353,444 discloses an auxiliary menu item thatprovides a preset for recording of a next episode in a series.

[0014] U.S. Patent Application Publication No. 2002/0040475 discloses anelectronic programming guide having enhanced functionality whichincludes the ability to track previously selected content so thatidentical or similar programs can be recorded in the future. Alsodisclosed is a duplicate episode filter which alerts a user if aduplicate episode is being recorded. The duplicate episode filter tracksthe list of recorded programs for duplicates when a record operation isinitiated. If a match is determined, a notification may be visuallydisplayed for the user.

[0015] The aforementioned publication further discloses visuallyalerting the viewer as a percentage of storage consumed by recordedmaterial reaches lower levels. For an out-of-disk space alert, a usermay receive a notification indicating the approximate minutes ofrecording time still available while recording is in progress. If theprogram length is greater than the amount of unused storage spaceavailable, the user may receive a notification indicating such, as wellat the recording time available, prior to or at the start of therecording.

[0016] U.S. Patent Application Publication No. 2002/0038358 discloses amodule designed to accommodate a request to add a single show. Themodule is used to add record events as specified after checking forconflicts or free disk space availability. Exemplary data that can behelpful in creating a data structure to be used by the module include anindicator to record all episodes and an indicator of the number ofepisodes.

[0017] U.S. Patent Application Publication 2002/0124249 discloses havingadvertisements downloaded to a set-top box. The advertisements aremerged with content either dynamically during playback or bymodification to the stored content to insert new advertisements. Timeand date can be used to avoid displaying obsolete advertisements.Advertisements can be individually selected for each user based on theuser's individual profile, thus making playback an individual playbackfor each user. In addition, advertising can be varied based upon thecontent, advertisement history, playback time and date. Thus, theparticular advertisement associated with a video-on-demand selection isnot static. Advertisement history can be used to optimize the frequencyany particular advertisement is provided to a user to maintain theuser's interest without the user becoming annoyed with theadvertisement.

[0018] U.S. Patent Application Publication 2002/0129375 discloses havingdata pre-loaded onto a set-top box (STB). For example, short pre-loadedvideo clips such as movie trailers or advertisements may be displayedprior to showing a selected video. To increase the probability that aviewer will watch the trailers and advertisements, the pre-loadedtrailer clips can be selected based on a subscriber's profile.

[0019] A set-top box database from each subscriber's set-top box iscollected on a regular basis. Using this information, the list oftrailers to be loaded for a given set-top box is modified to remove bothalready-watched trailers and trailers of videos already rented.

[0020] The set-top box includes a video file agent which determines theavailability of a requested video by checking a video lookup table. Thevideo lookup table comprises videos stored by the set-top box, videosstored at a central office, and videos stored at a video warehouse.Through a hierarchical menu display, where videos at the video warehouseare on the last set of sub-menus, a higher priority is given to menusfor the videos stored by the set-top box and the central office. Ahigher premium could be charged for videos stored at the video warehouseto encourage subscribers to choose videos stored at the set-top box andthe central office. Using the available list of trailers resident on theset-top box, the video file agent selects a mix of video trailers forviewing based on a usage profile of the subscriber and a category ofvideo selected.

[0021] Videos transferred to a set-top box memory are divided intochapters. A subscriber can move from chapter to chapter without havingto play through undesired chapters. The video chapters can betransferred in a non-linear, weighted distribution that is more heavilybuffered in the beginning video chapters.

[0022] U.S. Patent Application Publication No. 2002/0052782 disclosesrewarding users for viewing advertisements and for providing informationabout themselves. This facilitates selection and targeting ofadvertisements, and allows video channel viewers to subsidize and payfor the video channel programs that they are watching and theinteractive video service they are using. An incentive might comprise arate at which the buyer entity is compensated for viewing and/orinteracting with advertisements. Additionally, or alternatively, itmight comprise rewards that are promised to the buyer entity forresponding in certain ways to these advertisements.

[0023] U.S. Patent Application Publication No. 2002/0059584 disclosescontent providers (broadcasters and advertisers) using usage historyinformation to develop various content access, billing, and compensationmodels for consumers and content creators/owners.

[0024] U.S. Pat. No. 6,400,996 discloses interactive televisionadvertising models wherein a user may control the content and/orcommercial information received. In some cases, certain commercialsponsors may be able to avoid deletion of their advertisement, whileothers may allow truncation. The acceptability of this to the consumermay depend on subsidies. Instead of paying for placements directly tothe media, a portion is paid to a service provider, based on consumerviewing. The media, on the other hand, may seek to adopt a pay-per-viewpolicy, at least with respect to the service provider, in lieu of directadvertising revenues. The service provider will account to bothadvertisers and content providers for use. With sufficient viewing ofcommercials, the entire service charge for a system might be covered fora user. On the other hand, a viewer might prefer to avoid allcommercials, and not get the benefit of a subsidy. In this case, therecipient may be denied a subsidy from the commercial advertiser, andpay for the privilege of commercial free content.

[0025] The service provider performs the function of deliveringoptimized, substituted commercials for the general commercials providedby the commercial broadcast networks, and thus can accrue profits afterpaying content providers a fee. An advertiser, by selecting a particularaudience, may pay less than it would otherwise pay to a broadcaster. Thecontent providers may also charge more for the privilege of use of theirworks.

[0026] U.S. Patent Application Publication No. 2002/0078176 disclosesdownloading rented video data files in a time sensitive format that willdelete the file or make it inaccessible or unviewable after theexpiration of a specific rental period and/or after a specified numberof viewings. Purchased and/or rented video data files are downloaded ina copy protected format to prevent unauthorized reproduction or resaleof the video data files by the customer.

[0027] U.S. Patent Application Publication No. 2002/0129371 disclosesuse of content management information having an access time thresholdvalue and charging information. The access time threshold value is atime from a point at which a client receives content-related informationuntil a point at which the client actually requests contentdistribution. For some content, the longer the access time, the lower isthe charge, i.e. slow access enables the user to receive a discount.Reducing the charge as access time increases can be used as a chargingmethod for media of highly real-time character, such as news, and mediathat have greater value the more recent they are such as movies.

BRIEF DESCRIPTION OF THE DRAWINGS

[0028] The present invention is pointed out with particularity in theappended claims. However, other features are described in the followingdetailed description in conjunction with the accompanying drawings inwhich:

[0029]FIG. 1 is a block diagram of an embodiment of a system to providea DSL video service with storage;

[0030]FIG. 2 is a flow chart of an embodiment of a method to provide theDSL video service with storage;

[0031]FIG. 3 is a flow chart of an embodiment of a method of orderingmultiple video programs from a video server; and

[0032]FIG. 4 is a flow chart of an embodiment of a method ofautomatically adding video programs to a download schedule.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0033] Disclosed herein are embodiments of a digital video recorder(DVR) and an accompanying DSL video distribution service. The DSLservice provides video content to the DVR in either a real-timetransmission mode or a non-real-time transmission mode. The DVR promotesviewing of video programs at any time after being received by the DVR,in contrast to viewing a video program during its broadcast time. TheDVR and service facilitate video services for DSL without the need forreal-time speed.

[0034] Embodiments of the present invention are described with referenceto FIG. 1, which is a block diagram of an embodiment of a system toprovide a DSL video service with storage, and FIG. 2 which is a flowchart of an embodiment of a method of providing the DSL video servicewith storage. As shown in FIG. 1, the system comprises a video server 10having locally-stored video programs 12 and remotely-stored videoprograms 13 available for downloading by multiple customers. The videoserver 10 may be located either at a central office of atelecommunication system that provides the DSL service or at analternative location.

[0035] Each customer has a digital video recorder (DVR) 14 whichcommunicates with the video server 10, via DSL 16 or an alternativetelecommunication network, to request, receive and store selected onesof the video programs 12 and 13. The digital video recorder 14 may beembodied by either a so-called “set-top box” or a general purposecomputer. Regardless of its form, the digital video recorder 14 has anetwork interface, a mass storage device, a processor, and videorecording hardware and/or software stored on a computer-readable medium.

[0036] The digital video recorder 14 comprises a DSL modem 17 or analternative network interface to communicate with the video server 10according to a DSL protocol or an alternative protocol. The DSL protocolmay be based on at least one of Data Over Cable Service InterfaceSpecifications (DOCSIS), Asymmetric Digital Subscriber Line (ADSL),Very-high-data-rate Digital Subscriber Line (VDSL), Symmetrical DigitalSubscriber Line (SDSL), and Multirate DSL (MDSL).

[0037] Selections of video programs are made using a user inputinterface 20. Examples of the user input interface 20 include, but arenot limited to, any combination of a remote control, a keyboard, apointing device, and a voice/speech input and recognition device.

[0038] Playback of received video programs is initiated and controlledby the user input interface 20. The digital video recorder 14 outputs asignal to display video programs on a display device 22. Examples of thedisplay device 22 include, but are not limited to, a television and amonitor, either of which may display video using a cathode-ray tube, aliquid crystal display or plasma technology.

[0039] As indicated by block 24 in FIG. 2, a method of providing theservice comprises presenting a list of video programs 26 that can bedownloaded. The list of video programs 26 is communicated from the videoserver 10 to the digital video recorder 14 via the DSL 16, and displayedby the display device 22. The list of video programs 26 can include oneor more episodic series such as “ER”, one or more movies such as “DIEHARD”, and one or more specials such as “The 25^(th) Anniversary BarneySpecial”. The list of video programs 26 identifies the video programs 12cached at the video server 10, the video programs 13 accessible by theservice but stored elsewhere, and video programs 30 which are not yetavailable but will be made available in the future. Examples of videoprograms 30 appearing in the list 26 before being available includefuture episodes of a series such as “ER” and a future movie release suchas “ROCKY XII”. Video programs 30 which are not yet available include anassociated date of download availability in the list 26.

[0040] As indicated by block 32, the method comprises receiving aselection 34 of one or more individual programs that the user wants todownload. The selection 34 is made using the user input interface 20based on the list 26, and received by the digital video recorder 14.

[0041] As indicated by block 36, the user may select and/or modifyparameters 40 which affect the download of the selected programs. Theselection and/or modification of the parameters 40 is made by the userusing the user input interface 20, and received by the digital videorecorder 14. Examples of the parameters include, but are not limited to,a start time, a completion time, bandwidth, quality, and real/non-realtime.

[0042] The start time specifies either when the download process is tobegin or when the customer may begin to view a program. Examples of adownload-related start time parameter include start downloading now,start downloading tonight, start downloading tomorrow, start downloadingnext week, start downloading when the video becomes available, and startdownloading in a specified amount of time (e.g. start downloading in 2hours). Examples of a customer-viewing start time parameter include makeviewable at a particular time (e.g. 8:00 this evening), make viewabletonight, make viewable tomorrow, make viewable next week, and makeviewable in a specified amount of time (e.g. make viewable in 2 hours).Based on the customer-viewing start time parameter, a download-relatedstart time is determined. Here, the download-related start time may becalculated in software to ensure that the customer may begin viewing theprogram at the customer-viewing start time. For example, if the customerwishes to begin viewing a video at 8:00 this evening, the software wouldcalculate when to begin the downloading the video so that enough isreceived/buffered by 8:00.

[0043] The completion time specifies when the download process is toend. In light of a minimum amount of time required to perform thedownload, the user may not be free to specify any desired completiontime. Examples of the completion time parameter include completedownloading tonight, complete downloading tomorrow, complete downloadingnext week, and complete downloading in a specified amount of time (e.g.complete downloading in 2 hours).

[0044] The bandwidth parameter specifies an amount of bandwidth todedicate to the download process. Examples of the bandwidth parameterinclude use all bandwidth, use a specified fraction of availablebandwidth, use a specified absolute amount of bandwidth, save aspecified amount of bandwidth (e.g. 64 kbps) for other purposes, and usea qualitative amount of bandwidth (e.g. low, medium or high).

[0045] The quality parameter specifies viewing quality for the videoprograms. For lower values of the quality parameter, the video programsare compressed more to reduce the download time. Examples of the qualityparameter include low, medium and high. Other examples of the qualityparameter include a video cassette recorder (VCR) quality and a DVD 5.1quality. Pricing for the video programs may be based on the qualityparameter, where a customer pays more for a higher quality.

[0046] The real/non-real time parameter specifies whether the downloadis for substantially real-time viewing (e.g. streaming of content), orfor non-real-time viewing. The user may be charged a premium to receivea substantially real-time download in contrast to a non-real-timedownload. Substantially real-time downloading is considered to includecases where buffering is performed by the digital video recorder 14. Forreal-time viewing, this disclosure also contemplates that some contentin the list of video programs 26 may not be intended to be stored by thedigital video recorder 14 for later viewing.

[0047] As indicated by block 42, the method comprises creating adownload schedule 44 based on which programs were selected 34 and thedownload parameters 40. The download schedule 44 lists the variousselected programs, their download parameters such as start time orcompletion time, and indicates progress of any in-progress downloads.The download schedule 44 is displayed by the display device 22 to allowthe user to edit the download schedule 44, change download parameters40, discontinue one or more downloads, or perform other downloadschedule modification acts using the user input interface 20.

[0048] As indicated by block 46, the method comprises downloading theselected video programs on either a real-time or a non-real-time basisto the user's digital video recorder 14. The selected video programs aredownloaded from the video server 10 via the DSL 16. The digital videorecorder 14 stores the downloaded video programs as digital data in amemory 50. Examples of the memory 50 include, but are not limited to, amagnetic storage medium such as a hard disk, an electronic storagemedium such as a flash memory, and optical storage medium such as anoptical disk. Regardless of its form, the memory 50 is readable,writeable, and re-writeable.

[0049] For real-time downloads, the digital video recorder 14 outputs asignal to display the video program using the display device 22 whilethe download is in progress.

[0050] Optionally, as indicated by block 48, the download of addedprograms may be stopped or suspended if, during the download, somebandwidth of the DSL 16 is being used for another application. Forexample, a personal computer may use some bandwidth when browsing theInternet using the DSL 16. The digital video recorder 14 may output amessage 49, for display by the display device 22, to query the user ifthe download should be terminated or suspended. An example of themessage 49 is “I am recording Leave it to Beaver, do you want to suspendor terminate this download?”. The digital video recorder 14 eithercontinues, suspends, or terminates the download based on a response fromthe user received by the user input interface 20.

[0051] As indicated by block 52, the method comprises providing aready-to-watch list 54 of all programs that are currently stored locallyin the memory 50 of the digital video recorder 14. The digital videorecorder 14 outputs the ready-to-watch list 54 for display by thedisplay device 22. In one embodiment, the digital video recorder 14determines if a sufficient amount of an in-progress download has beenreceived to allow playback of a video program before completing thedownload. If a sufficient amount of the video program has beendownloaded to permit playback, the video program is included in theready-to-watch list 54 but indicated to show that the download is stillin-progress. Otherwise, the digital video recorder 14 may add the videoprogram to the ready-to-watch list 54 after the download is complete.

[0052] As indicated by block 56, the method comprises receiving aselection 60 of a video program from the ready-to-watch list 54. Theselection 60 is made by the user using the user input interface 20, andreceived by the digital video recorder 14. In response thereto, thedigital video recorder 14 performs an act of playing back the selectedvideo program, as indicated by block 62, for display by the displaydevice 22. The resulting video playback is represented by referencenumeral 64.

[0053] In one embodiment, the video programs that are downloaded includetrailers or commercials for other programs. The trailers are played fordisplay by the display device 22 before, during, and/or after playbackof the video program. The user can easily select a program advertised bya trailer by pressing, for instance, a single button of the user inputinterface 20 which initiates a “download this” function. In response tothe user-selection, flow of the method is directed back to block 36wherein the user is prompted to select and/or modify download options,or use a set of default options to affect downloading of the advertisedprogram. The advertised program is added to the download schedule (block42), and is downloaded based on the schedule (block 46). If playback ofa video program was interrupted by the user selection of the trailer,playback of the video program is resumed either before or duringdownloading of the advertised program.

[0054] Similarly, preview clips 66 can be downloaded automatically fromthe video server 10. The preview clips 66 may be substantially onlycommercials for other shows to download. In one embodiment, the previewclips 66 are launched and played automatically in a split screen modewhile the user accesses administrative functions of the digital videorecorder 14. The user can order a show based on one of the preview clips66 in the manner described for the trailers.

[0055] The user input interface 20 provides playback controls 70 whichallow the user to play, pause, rewind, fast forward and otherwisecontrol the video playback 64. Examples of advanced playback featuresprovided by the playback controls 70 include, but are not limited to,different playback speeds, different rewind speeds, different fastforward speeds, an ability to skip ahead or back one commercial, anability to skip ahead or back a time interval such as X seconds, andscene navigation such as an ability to skip or start at a particularscene such as scene Y.

[0056] Either the video service or a program producer may divide abroadcast program into scenes to allow viewers to employ scenenavigation to watch selected scenes of interest. If a viewer is notinterested in a subject matter of a particular scene, he/she can skip tothe next scene, for example. This feature is beneficial to userswatching broadcast programs such as news programs having multiple newsreports, and talk shows having multiple topics.

[0057] Scene navigation may be implemented based on the teachings ofU.S. Pat. Nos. 5,933,841 and 6,442,574, which are hereby incorporated byreference into the present disclosure. User-selectable scene headingsmay be juxtaposed with the video playback 64 on the display device 22.Users can select any of the scene headings using the user inputinterface 20 to jump the video playback 64 to a desired portion of thevideo program.

[0058] The playback controls 70 may include a resume feature to allow auser to resume viewing the video playback 64 at a point that the userleft off. In the case of playback of an in-progress download, use of thefast forward and skip ahead features may be limited.

[0059] Based on the playback, the digital video recorder 14 updates aviewing history 71 of the video program. For each of the video programs,the viewing history 71 provides a time and date stamp indicating whenthe video program was watched using the digital video recorder 14. Alsofor each of the video programs, the viewing history 71 indicates whichusers watched the video program using the digital video recorder 14.Further, the viewing history 71 may include episode information for atleast one of the video programs. Examples of the episode informationinclude, but is not limited to, a unique episode identification numberor code, and a date that the particular episode was initially broadcast.The ready-to-watch list 54 may indicate the viewing history 71 of eachvideo program so that users can easily determine if and when they havewatched each video program, who else has watched each video program, andoptional episode information for the video program.

[0060] The digital video recorder 14 comprises a memory manager 72 thatmanages the storage of video programs in the memory 50. Some videoprograms are permitted to be stored indefinitely in the memory 50, whileother video programs may have associated persistence conditions. Anexample of a persistence condition is that only a limited number (e.g.one or two) of playbacks of a video program is permitted. Anotherexample of a persistence condition is that a video program may be storedin the memory 50 only for a limited time period (e.g. one week or twoweeks). Based on its persistence conditions and its viewing history 71,a video program may be automatically deleted from the memory 50 by thememory manager 72.

[0061] The memory manager 72 is responsive to the user input interface20 to enable the user to select and manually delete one or more of thevideo programs stored in the memory 50. In one embodiment, the memorymanager 72 attempts to keep the memory 50 as full as possible in orderto maximize the amount of programming that the user has to watch. Inthis embodiment, the memory manager 72 retains the video programs in thememory 50 until unoccupied space in the memory 50 reaches an undesirablylow level.

[0062] As indicated by block 74 in FIG. 2, the memory manager 72 servesto determine if a low memory condition either presently exists or willexist based on the download schedule. If either a present or future lowmemory condition is determined, a memory alert message 76 is outputted(block 78) by the digital video recorder 14 for display by the displaydevice 22. For a future low memory condition 80, a particular date 82for which the digital video recorder 14 will reach a low memorycondition based on the download schedule, an amount of unoccupied memoryspace in the digital video recorder 14, and optionally persistenceconditions of one or more video programs stored in the memory, isdetermined and included in the memory alert message 76. The particulardate may be a present date (i.e. on the same day that the memory alertmessage 76 is outputted), a day later the present date, or at least twodays later than the present date. Further, a particular program 84 inthe download schedule for which the digital video recorder 14 will reachthe low memory condition is determined and included in the memory alertmessage 76.

[0063] In this way, the digital video recorder 14 warns the user eitherwhen the memory 50 is running low or if the memory 50 will be runninglow based on the download schedule. In response to the memory alertmessage 76, the user may manually delete one or more of the videoprograms stored in the memory 50 and/or modify the download scheduleusing the user input interface 20 (block 88).

[0064] In one embodiment, the memory manager 72 automatically deletesone or more video programs (e.g. those which may otherwise persistindefinitely) in the memory 50 to make room for new downloads. Thememory manager 72 selects video programs for deletion based on apriority level associated with each video program. The priority of avideo program added to the memory 50 is automatically set to a low valueso that it will be an early candidate for deletion if the memory 50becomes low. Upon seeing the added video program on the downloadschedule 44 or the ready-to-watch list 54, the user can change thepriority level to save the video program longer, if desired. Moregenerally, the user can set a prioritization 90 of any of the videoprograms in the download schedule 44 or the ready-to-watch list 54 usingthe user input interface 20. The prioritization 90 is communicated fromthe user input interface 20 to the digital video recorder 14 for use bythe memory manager 72.

[0065] To illustrate operation of the memory manager 72, consider ahypothetical state of the digital video recorder 14 on a present date ofMay 13^(th). On the present date, the digital video recorder 14 has 2Gigabytes of unoccupied memory space. The digital video recorder 14 hasmultiple video programs stored in the memory 50, consisting of videoprogram VP1 (occupying 2 Gigabytes) having a persistence condition thatwill cause its automatic deletion at the end of the day of May 14^(th),video program VP2 (occupying 2 Gigabytes) which may persist indefinitelybut has a low priority, and video programs VP3 to VPN (occupying 94Gigabytes) which may not be automatically deleted. The download schedulecomprises recording a first video program (1 Gigabyte) on May 14^(th), asecond video program (4 Gigabytes) on May 15^(th), and an episode of“Scooby Doo” (2 Gigabytes) on May 16^(th) Using this information, thememory manager 72 determines that there is sufficient memory space (2Gigabytes) to record the first video program on May 14^(th) (which willresult in 1 Gigabyte being unoccupied), to automatically delete thevideo program VP1 at the end of May 14^(th) (which will result in 3Gigabytes being unoccupied), to automatically delete the low priorityvideo program VP2 on May 15^(th) (which will result in 5 Gigabytes beingunoccupied) before recording the second video program (which will resultin 1 Gigabyte being unoccupied). However, the memory manager determinesthat a future low memory condition will occur when recording “ScoobyDoo” on May 16^(th) (since this program is 2 Gigabytes and only 1Gigabyte will be unoccupied with no video programs in the memory 50qualifying for automatically deletion). The digital video recorder 14informs the user that “you will run out of memory on May 16^(th) when Idownload Scooby Doo” in the memory alert message 76.

[0066] optionally, the video distribution service may manage titlespurchased for indefinite use. The video distribution service may allowthe customer to recover content he/she had deleted from the digitalvideo recorder 14 but had indefinite license rights to.

[0067] The digital video recorder 14 may have preference data 92 storedfor each of its users. In one mode, the digital video recorder 14 learnsthe preferences of a user by prompting the user to enter preferenceinformation and/or by observing viewing habits of the user using theviewing history 71. When a sufficient amount of bandwidth of the DSL 16and unoccupied space in the memory 50 exist, an automatic programselector 94 automatically adds programs to the download schedule 44based on the preference data 92 and the viewing history 71.

[0068] If a user likes a particular genre, the automatic programselector 94 may automatically add other programs of the particulargenre. If a user likes a particular episodic series, the automaticprogram selector 94 may automatically add episodes of the series. Forexample, consider a user who has been downloading old Star Trekepisodes. The automatic program selector 94 may automatically add moreStar Trek episodes to the download schedule 44.

[0069] Based on the viewing history 71, the automatic program selector94 may automatically add programs to the download schedule 44 to attemptto have at least a particular number of unwatched episodes of a series,or a particular number of subsequent episodes of a series, or aparticular number of unwatched programs of a particular genre, stored inthe memory 50. By unwatched, it is meant that the episode or program hasnot been recently downloaded and watched using the digital videorecorder 14. In some embodiments, the particular number may be two orthree. Thus, for an episodic series, the automatic program selector 94may have a goal of maintaining the next two or three episodes of auser's favorite series in the memory 50.

[0070] For example, consider the memory 50 having stored therein episodenumbers 199, 200 and 201 of “Leave it to Beaver”. In response to theuser playing back episodes 199 and 200 on an evening, the automaticprogram selector 94 may add episodes 202 and 203 to the downloadschedule 44 for downloading within about 24 hours. Thus, by nextevening, the memory 50 will have stored therein episode numbers 201, 202and 203. This promotes viewing of episodes in order and without havingto wait for a user-initiated download request. A more generaldescription of this feature will be provided with reference to FIG. 4.

[0071] Optionally, the service itself may select items of interest tothe user and download them to the digital video recorder 14 independentof the preferences 92.

[0072] The video service has an associated billing system 100 to billsubscribers, content providers and advertisers. The billing system 100charges subscribers for downloading video programs. The price charged toa subscriber for downloading a video program may be based on a level ofservice reflected by its download parameters 40. The billing system 100may charge a premium for a real-time on-demand download in contrast to anon-real-time download. For non-real-time downloads, the billing system100 may charge more for earlier start and/or completion times. Forexample, the billing system 100 may charge a price P1 for a real-timedownload, a price P2 for a download within two hours, a price P3 for anovernight download, and a price P4 for a download within a week, whereP1>P2>P3>P4.

[0073] Further, the price charged to a subscriber for downloading avideo program may be based on the storage location of the video program.The locally-stored video programs 12 may be discounted relative to theremotely-stored video programs 13.

[0074] The billing system 100 may charge advertisers if the videoservice provides advertising to the digital video recorder 14.Advertisements may be downloaded to the digital video recorder 14 fordisplay either before, during, or after playback of video programs. Eachof the advertisements may have an expiration date which initiates itsautomatic deletion from the digital video recorder 14. The digital videorecorder 14 may maintain an advertisement viewing history. Theadvertisement viewing history tracks when each advertisement was viewedand by whom. The advertisement viewing history can be used to ensurethat advertisements are not being inserted with an undesirably highfrequency. Some advertisements may be inserted based on the preferencedata 92 while others are pushed regardless of the preference data 92.Different advertisements may be displayed for different playbacks of thesame video program at different times. Also, advertisements may begeographically targeted. For example, a customer located in Austin, Tex.who has expressed an interest in purchasing a car may be receive athis/her DVR one or more car advertisements from auto dealers in theAustin area, but no advertisements from auto dealers in Chicago.

[0075] The billing system 100 may charge sponsors of video programs thatthe service itself pushes to users regardless of user preferences orselections.

[0076] The digital video recorder 14 may have a feature that selectivelypermits and prohibits transferring stored video programs to anothermedium. The other medium may be a video cassette or a digital video disk(DVD), for example. Some video programs may prohibit transfer to anothermedium, in which case the digital video recorder 14 complies.

[0077]FIG. 3 is a flow chart of an embodiment of a method of orderingmultiple video programs from the video server 10. The acts performed inthis embodiment are performed in association with acts and featuresdescribed with reference to FIGS. 1 and 2.

[0078] As indicated by block 110, the method comprises receiving asearch query to search for video programs. The search query is enteredand/or selected by the user using the user input interface 20. Thesearch query is communicated from the user input interface 20 to thedigital video recorder 14. The digital video recorder 14 communicatesthe search query to the video server 10 via the DSL 16.

[0079] As indicated by block 112, the method comprises identifying a setof video programs based on the search query. For example, suppose theuser was interested in video programs about insects. The user wouldenter and/or select “insects” as the search query. The video server 10or another network element would identify a set of video programs thatpertain to insects.

[0080] The set of video programs may include at least one of thelocally-stored video programs 12, at least one of the remotely-storedvideo programs 13, and at least one of the future video programs 30.

[0081] As indicated by block 114, the method comprises providing, to theuser, a list of the video programs in the set. The list is communicatedfrom the video server 10 to the digital video recorder 14 via the DSL16. The list is displayed by the display device 22.

[0082] As indicated by block 116, the method optionally comprisesindicating in the list that at least one video program in the set is fora first intended audience, and at least one other video program in theset is for a second intended audience. The first intended audience maybe kids and the second intended audience may be adults. Continuing withthe above example, suppose that the set of video programs about insectsconsists of a show that was broadcast on the Discovery Kids Channel, ashow that was broadcast on Animal Planet, a show that was broadcast onthe National Geographic Channel, an episode of Nova that was broadcaston PBS. The Discovery Kids' show may be indicated to be intended forkids, and the Animal Planet show, the National Geographic show and theepisode of Nova may be indicated to be intended for adults.

[0083] As indicated by block 120, the method optionally comprisesproviding a recommended viewing order of the video programs in the set.The recommended viewing order may indicate an interrelationship betweenvideo programs in the set. For example, the recommended viewing ordermay be of increasing depth or sophistication in the subject matterindicated by the search query, or a chronological order based onproduction dates of the video programs. Continuing with the aboveexample, the recommended viewing order may be: (i) the Discovery Kids'show, (ii) the Animal Planet show, (iii) the episode of Nova, and (iv)the National Geographic show.

[0084] As indicated by block 122, the method comprises receiving aselection of one or more of the video programs in the set. The selectionis made by the user using the user input interface 20. The selection iscommunicated from the user input interface 20 to the digital videorecorder 14. The digital video recorder 14 communicates the selection tothe video server 10 via the DSL 16. Continuing with the above example,consider the user selecting all four of the shows in the list.

[0085] As indicated by block 124, the method comprises adding theselected video programs to the download schedule 44 described withreference to FIGS. 1 and 2. The selected video programs are scheduled inaccordance with the recommended viewing order.

[0086] As indicated by block 126, the method comprises downloading theselected video programs based on the download schedule. The download isperformed as described with reference to FIGS. 1 and 2. The user mayview all or part of each of the selected video programs using thedigital video recorder 14 and the display device 22. The user maynavigate within each video program using the user input interface 20.Further, the user may navigate from one video program to another videoprogram using the user input interface 20 based on the teachings in U.S.Pat. No. 6,145,000, which is hereby incorporated by reference into thepresent disclosure.

[0087] As indicated by block 130, the method comprises billing the userfor downloading the selected video programs. The user may be given adiscount if all videos in the set are ordered. Further, the user may bebilled based on how much of the video programs are viewed using thedigital video recorder 14. Continuing with the above example, suppose anadult user, after watching three minutes of the Discovery Kids' show,would prefer to stop watching the show and move on to the moresophisticated Animal Planet show (which is the next program in therecommended viewing order). The user may be billed for the DiscoveryKids' show commensurate with three minutes of viewing time in contrastto viewing the entire show.

[0088]FIG. 4 is a flow chart of an embodiment of a method ofautomatically adding video programs to a download schedule. As indicatedby block 140, the method comprises simultaneously storing, in the memory50 of the digital video recorder 14, consecutive video programs in asequence of video programs. The sequence of video programs may comprisea sequence of episodes in an episodic series, a sequence of videoprograms of a particular genre, or a recommended viewing order of videoprograms based on a search query as described with reference to FIG. 3.The consecutive video programs are downloaded from the video server 10to the modem 17 of the digital video recorder 14. In one embodiment, atleast three consecutive video programs in the sequence aresimultaneously stored in the memory 50. However, any number ofconsecutive video programs in the sequence may be simultaneously stored.

[0089] As indicated by block 142, the method comprises playing back oneof the consecutive video programs using the digital video recorder 14.The video program is played back for display by the display device 22.Initially, the first of the consecutive video programs is played back.

[0090] As indicated by block 144, the method comprises automaticallyadding a video program from the sequence to the download schedule 44 inresponse to said playing back the one of the consecutive video programs.The added video program is automatically added by the automatic programselector 94. Initially, the added video program is one whichsequentially follows a last of the consecutive video programs stored inthe memory 50.

[0091] As indicated by block 146, the method optionally comprisesindicating in the download schedule 44 that the added video program isto be downloaded from the video server 10 within a specific time period,such as about a day.

[0092] The acts indicated by blocks 142, 144 and 146 may be repeated foreach of the consecutive video programs stored in the memory 50. Forexample, a second of the consecutive video programs may be played back.In response thereto, the automatic program selector 92 automaticallyadds another video program from the sequence to the download schedule44. The other added video program consecutively follows thepreviously-added video program in the sequence.

[0093] As indicated by block 150, the method comprises downloading theone or more added video programs in the download schedule 44. The one ormore added video programs are downloaded from the video server 10 to thedigital video recorder 14, and stored by the memory 50. As a result, anew set of consecutive video programs is stored by the memory 50. Thenew set of consecutive video programs may or may not include any of theprevious set of consecutive video programs.

[0094] Flow of the method is directed back to block 142, wherein a usercan play back the next unwatched video program in the sequence using thedigital video recorder 14. This method promotes viewing of videoprograms in order and without having to wait for a user-initiateddownload request.

[0095] The video server 10 or another network element may allow theselection of video programs to be made via a wide area computer networksuch as the Internet or World Wide Web. Using a computer incommunication with the wide area computer network, the customer mayselect video programs to download to the digital video recorder 14, andmay remotely control any of the herein-disclosed features of the digitalvideo recorder 14. Further, video program selection and DVR remotecontrol may be enabled by either a wireless data access device such awireless telephony device (e.g. a cellular telephone), a wirelesscomputer device (e.g. a personal digital assistant), or a wirelinetelephony device via an interactive voice response (IVR) system.

[0096] It will be apparent to those skilled in the art that thedisclosed inventions may be modified in numerous ways and may assumemany embodiments other than the preferred forms specifically set out anddescribed herein. For example, the acts described herein may beperformed in an order which differs from that shown in FIGS. 2, 3 and 4.Further, some of the acts shown in FIGS. 2, 3 and 4 may be performedconcurrently.

[0097] Accordingly, it is intended by the appended claims to cover allmodifications which fall within the true spirit and scope of the presentinvention.

What is claimed is:
 1. A method comprising: determining a particulardate for which a digital video recorder (DVR) will reach a low memorycondition based on a download schedule and an amount of unoccupiedmemory space in the DVR; and displaying the particular date.
 2. Themethod of claim 1 wherein the particular date is at least two days laterthan a present date.
 3. The method of claim 1 wherein said determiningthe particular date is further based on a persistence condition of avideo program stored by the DVR.
 4. The method of claim 3 wherein thepersistence condition comprises automatically deleting the stored videoprogram on a date between a present date and the particular date.
 5. Themethod of claim 3 wherein the persistence condition comprisesautomatically deleting the stored video program to make room for a newdownload.
 6. The method of claim 1 wherein the download schedulecomprises a first video program that is user selected and a second videoprogram that is automatically selected.
 7. The method of claim 1 furthercomprising: determining a particular video program in the downloadschedule for which the DVR will reach the low memory condition; andindicating the particular video program.
 8. A method comprising:determining a particular video program in a download schedule for whicha digital video recorder (DVR) will reach a low memory condition basedon the download schedule and an amount of unoccupied memory space in theDVR; and indicating the particular video program.
 9. The method of claim8 wherein said determining the particular video program is further basedon a persistence condition of a video program stored by the DVR.
 10. Themethod of claim 9 wherein the persistence condition comprisesautomatically deleting the stored video program on a date between apresent date and the particular date.
 11. The method of claim 9 whereinthe persistence condition comprises automatically deleting the storedvideo program to make room for a new download.
 12. The method of claim 8wherein the download schedule comprises at least one video program to berecorded before the particular video program.
 13. An apparatuscomprising: a digital video recorder (DVR) having a memory manager todetermine a particular date for which the DVR will reach a low memorycondition based on a download schedule and an amount of unoccupiedmemory space in the DVR, the DVR to output a display signal to indicatethe particular date.
 14. The apparatus of claim 13 wherein theparticular date is at least two days later than a present date.
 15. Theapparatus of claim 13 wherein memory manager is to determine theparticular date based on a persistence condition of a video programstored by the DVR.
 16. The apparatus of claim 15 wherein the persistencecondition comprises automatically deleting the stored video program on adate between a present date and the particular date.
 17. The apparatusof claim 15 wherein the persistence condition comprises automaticallydeleting the stored video program to make room for a new download. 18.The apparatus of claim 13 wherein the download schedule comprises afirst video program that is user selected and a second video programthat is automatically selected.
 19. The apparatus of claim 13 whereinthe memory manager is further to determine a particular video program inthe download schedule for which the DVR will reach the low memorycondition, wherein the DVR is to output a display signal to indicate theparticular video program.
 20. An apparatus comprising: a digital videorecorder (DVR) having a memory manager to determine a particular videoprogram in a download schedule for which the DVR will reach a low memorycondition based on the download schedule and an amount of unoccupiedmemory space in the DVR, the DVR to output a display signal to indicatethe particular video program.
 21. The apparatus of claim 20 wherein thememory manager is to determine the particular video program based on apersistence condition of a video program stored by the DVR.
 22. Theapparatus of claim 21 wherein the persistence condition comprisesautomatically deleting the stored video program on a date between apresent date and the particular date.
 23. The apparatus of claim 21wherein the persistence condition comprises automatically deleting thestored video program to make room for a new download.
 24. The apparatusof claim 20 wherein the download schedule comprises at least one videoprogram to be recorded before the particular video program.